package E_2024;

/*
    给定一个非空字符串S，其被N个‘-’分隔成N+1的子串，给定正整数K，要求除第一个子串外，其余的子串每K个字符组成新的子串，并用‘-’分隔。
    对于新组成的每一个子串，如果它含有的小写字母比大写字母多，则将这个子串的所有大写字母转换为小写字母；
    反之，如果它含有的大写字母比小写字母多，则将这个子串的所有小写字母转换为大写字母；大小写字母的数量相等时，不做转换。

    输入描述
    输入为两行，第一行为参数K，第二行为字符串S。

    输出描述
    输出转换后的字符串。

    用例
    输入	3
        12abc-abCABc-4aB@
    输出	12abc-abc-ABC-4aB-@
    说明
    子串为12abc、abCABc、4aB@
 */
public class E_100_16 {
    public static void main(String[] args) {
        System.out.println(ans("12abc-abCABc-4aB@",3));
        System.out.println(ans("12abc-abCABc-4aB@",4));
    }
    public static String ans(String str, int length){
        String[] split = str.split("-");
        StringBuilder sb = new StringBuilder();
        sb.append(split[0]);
        for (int i = 1; i < split.length; i++) {
            String temp = split[i];
            int x = 0;
            int d = 0;
            int j = 0;
            while(j <= temp.length() / length){
                x = d = 0;
                String ss = temp.substring(j*length, Math.min((j+1)*length, temp.length()));
                if (ss.length() < 1) break;
                for (int m = 0; m < ss.length(); m++) {
                    char ch = ss.charAt(m);
                    if (ch >= 'a' && ch <= 'z') x++;
                    if (ch >= 'A' && ch <= 'Z') d++;
                }
                if (x > d) sb.append("-").append(ss.toLowerCase());
                else if (x < d) sb.append("-").append(ss.toUpperCase());
                else sb.append("-").append(ss);
                j++;
            }
        }
        return sb.toString();
    }
}
